# Jupyter notebook/Lab 简述 在数据科学,机器学习,深度学习中,我们希望即时进行图像的可视化和函数的计算,基于这种需求,人们开发出了基于网页的用于交互计算的应用程序Jupyter Notebook。在我们的教程代码也是基于Jupyter notebook。除此之外,它们可被应用于全过程计算:开发、文档编写、运行代码和展示结果。在Jupyter Notebook中编写的文档保存为`.ipynb`的`JSON`格式文件,文档可以导出为HTML、LaTeX、markdown、PDF等格式。Jupyter Notebook的主要特点有: * 编程时具有**语法高亮**、*缩进*、*tab补全*的功能。 * 可直接通过浏览器运行代码,同时在代码块下方展示运行结果。 * 以富媒体格式展示计算结果。富媒体格式包括:HTML,LaTeX,PNG,SVG等。 * 对代码编写说明文档或语句时,支持Markdown语法。 * 支持使用LaTeX编写数学性说明。 除此之外,好用的Jupyter Notebook还有个“双胞胎”——Jupyter Lab。Jupyter Lab是基于Web的集成开发环境,可以把它当作进化版的Jupyter Notebook。使用Jupyter Lab可以同时在一个浏览器页面打开编辑多个Notebook、Ipython console和terminal终端,甚至可以使用Jupyter Lab连接Google Drive等服务。由于Jupyter Lab拥有模块化结构,提供更多类似IDE的体验,已经有越来越多的人从使用Jupyter Notebook转向使用Jupyter Lab。 [* ]通过本章学习,你将收获: * 安装和配置Jupyter Notebook和Jupyter Lab的方法 * Jupyter Notebook的基本操作和快捷键 * 使用Jupyter Notebook编写代码的方式 * 了解Jupyter Notebook的Bash命令和魔术命令 * 为Jupyter Notebook安装拓展插件的方法 ## 1 Jupyter Notebook/Lab安装 1. 安装Jupyter Notebook:激活虚拟环境后,我们只需要在终端输入指令 ```python conda install jupyter notebook # pip install jupyter notebook ``` * 注:如果pip版本过低,还需提前运行更新pip的指令 ```python pip install --upgrade pip ``` 2. 安装Jupyter Lab:激活环境后,我们同样也只需要在终端输入指令 ```python conda install -c conda-forge jupyterlab # pip install jupyterlab ``` 3. 在终端输入指令打开Jupyter Notebook ```python jupyter notebook # 打开Jupyter Notebook jupyter lab # 打开Jupyter Lab ``` * 如果浏览器没有自动打开Jupyter Notebook或者Jupyter Lab,复制端口信息粘贴至浏览器打开 ![image-20220812162810305](figures/image-20220812162810305.png) * 如果想要自定义端口,在终端输入如下指令修改 ```python jupyter notebook --port ``` * 如果想启动服务器但不打开浏览器,可以在终端输入 ```python jupyter notebook --no-browser ``` ## 2 Jupyter Notebook/Lab配置 ### 2.1 设置文件存放位置 ​ 在使用Jupyter Notebook/Jupyter Lab时,如果我们想要更改默认文件存放路径,该怎么办? * Jupyter Notebook 1. 我们首先需要查看配置文件,只需要在终端输入 ```python jupyter notebook --generate-config ``` 2. 我们记住出现配置文件的路径,复制到文件夹中打开(终端这里可以写N) image-20220716235510697 4. 在文件夹中双击打开配置文件 image-20220716235540827 5. 打开Python文件后,用`Ctrl+F`快捷键查找,输入关键词,找到`# c.NotebookApp.notebook_dir = ''` 6. 去掉注释,并填充路径`c.NotebookApp.notebook_dir = 'D:\\Adatascience'` image-20220804170455298 7. 此时我们在终端中输入`jupyter notebook`,打开页面后发现文件默认路径已经被更改。但是点击菜单栏中的应用快捷方式打开Jupyter Notebook,打开页面发现文件位置仍然是默认路径 image-20220716235931573 8. 如果我们想要更改应用快捷方式Jupyter Notebook的文件位置,此时需要右键选中快捷方式,打开文件所在位置。再右键点击快捷方式,查看属性,再点击快捷方式 image-20220717000530228 image-20220804171027983 9. 我们只需要在“目标”中删除红框标记部分,点击确定 image-20220717001243904 10. 此时再打开菜单栏中Jupyter Notebook的快捷方式,发现页面文件路径已经变为之前自主设置的路径啦! * Jupyter Lab的修改操作和Jupyter Notebook流程相似,但是在细节上有些不同 1. 同样我们还是首先需要查看配置文件,在终端输入 ```python jupyter lab --generate-config ``` 2. 找到配置文件所在的文件夹,打开配置文件 3. 修改配置文件时,用`Ctrl+F`快捷键查找,输入关键词,找到`# c.ServerApp.notebook_dir`,去掉注释。改为`c.ServerApp.notebook_dir = 'D:\\Adatascience(这里填自己想改的文件路径)'` 4. 之后的步骤和Jupyter Notebook修改配置文件的第七至第十步相同 ### 2.2 使用虚拟环境 ​ 需要注意的是,Anaconda安装的虚拟环境和Jupyter Notebook运行需要的Kernel并不互通。那么我们该如何解决这个问题,并且如果我们想要切换内核(Change Kernel),该如何操作呢? 1. 将在Anaconda中创建的虚拟环境添加`ipykernel` ```python # 如果还没创建环境,在创建时要加上ipykernel conda create -n env_name python=3.8 ipykernel # 如果已经创建环境,在环境中安装ipykernel pip install ipykernel ``` 2. 将虚拟环境写进Jupyter ```python python -m ipykernel install --user --name env_name --display-name "env_name" ``` 3. 在`Kernel`中更换添加的虚拟环境即可 image-20220812171025719 ## 3 Jupyter Notebook\Lab基本操作 ### 3.1 基本使用 #### 3.1.1 Jupyter Notebook 1. 创建文件:点击右上角New,选择Notebook;创建文件夹:点击右上角New,选择Folder image-20220805024106987 2. 删除文件:点击文件前的方框,再点击删除图标 image-20220805030406608 3. 重命名文件:当文件在运行时(即文件前图标为绿色),需要先点击“Shutdown”(关闭终端),再点击“Rename” image-20220805031209481 4. 重命名文件夹:点击文件夹前的方框,再点击“Rename” 5. 复制(Duplicate)、移动(Move)、下载(Download)、查看(View)等操作,同样可以点击文件前的方框,再点上方的图标进行操作 #### 3.1.2 Jupyter Lab 1. 红框内按钮从左到右分别是新建文件、新建文件夹、上传文件和刷新 ![image-20220805033034092](figures/image-20220805033034092.png) 2. 上传多个文件的方法: * 将文件打包成一个zip压缩包 * 上传该压缩包 * 解压文件`!unzip (压缩包所在路径) -d (解压路径)`,例如:`!unzip coco.zip -d data/coco` * 删除该压缩包 ### 3.2 常用快捷键 1. 入门操作 ```python # 增加,减少,剪切,保存,删除等 # a, b, x, s, dd # 合并,执行本单元代码,并跳转到下一单元,执行本单元代码,留在本单元 # Shift+M Shift+Enter Ctrl+Enter # 显示行数,切换markdown/code # l, m/y ``` 2. Jupyter Notebook中按下Enter进入编辑模式,按下Esc进入命令模式 * **编辑模式(绿色)** ![image-20220805144702521](figures/image-20220805144702521.png) * **命令模式(蓝色)** ![image-20220805144722375](figures/image-20220805144722375.png) * 在命令模式下,点击h,会弹出快捷键窗口 image-20220805144803441 3. Jupyter Lab同样有两种模式。按下Enter进入编辑模式,按下Esc进入命令模式 * 编辑模式(有框线无光标) ![image-20220805145218241](figures/image-20220805145218241.png) * 命令模式(无框线无光标) ![image-20220805150721875](figures/image-20220805150721875.png) * 快捷键操作与Jupyter Notebook基本相同,可参考上一部分 4. 快捷键汇总 ​ 命令模式(按`Esc`) - **Enter** : 转入编辑模式 - **Shift-Enter** : 运行本单元,选中下个单元 - **Ctrl-Enter** : 运行本单元 - **Alt-Enter** : 运行本单元,在其下插入新单元 - **Y** : 单元转入代码状态 - **M** :单元转入markdown状态 - **R** : 单元转入raw状态 - **1** : 设定 1 级标题 - **2** : 设定 2 级标题 - **3** : 设定 3 级标题 - **4** : 设定 4 级标题 - **5** : 设定 5 级标题 - **6** : 设定 6 级标题 - **Up** : 选中上方单元 - **K** : 选中上方单元 - **Down** : 选中下方单元 - **J** : 选中下方单元 - **Shift-K** : 扩大选中上方单元 - **Shift-J** : 扩大选中下方单元 - **A** : 在上方插入新单元 - **B** : 在下方插入新单元 - **X** : 剪切选中的单元 - **C** : 复制选中的单元 - **Shift-V** : 粘贴到上方单元 - **V** : 粘贴到下方单元 - **Z** : 恢复删除的最后一个单元 - **D,D** : 删除选中的单元 - **Shift-M** : 合并选中的单元 - **Ctrl-S** : 文件存盘 - **S** : 文件存盘 - **L** : 转换行号 - **O** : 转换输出 - **Shift-O** : 转换输出滚动 - **Esc** : 关闭页面 - **Q** : 关闭页面 - **H** : 显示快捷键帮助 - **I,I** : 中断Notebook内核 - **0,0** : 重启Notebook内核 - **Shift** : 忽略 - **Shift-Space** : 向上滚动 - **Space** : 向下滚动 ​ 编辑模式(按`Enter`) - **Tab** : 代码补全或缩进 - **Shift-Tab** : 提示 - **Ctrl-]** : 缩进 - **Ctrl-[** : 解除缩进 - **Ctrl-A** : 全选 - **Ctrl-Z** : 复原 - **Ctrl-Shift-Z** : 再做 - **Ctrl-Y** : 再做 - **Ctrl-Home** : 跳到单元开头 - **Ctrl-Up** : 跳到单元开头 - **Ctrl-End** : 跳到单元末尾 - **Ctrl-Down** : 跳到单元末尾 - **Ctrl-Left** : 跳到左边一个字首 - **Ctrl-Right** : 跳到右边一个字首 - **Ctrl-Backspace** : 删除前面一个字 - **Ctrl-Delete** : 删除后面一个字 - **Esc** : 进入命令模式 - **Ctrl-M** : 进入命令模式 - **Shift-Enter** : 运行本单元,选中下一单元 - **Ctrl-Enter** : 运行本单元 - **Alt-Enter** : 运行本单元,在下面插入一单元 - **Ctrl-Shift--** : 分割单元 - **Ctrl-Shift-Subtract** : 分割单元 - **Ctrl-S** : 文件存盘 - **Shift** : 忽略 - **Up** : 光标上移或转入上一单元 - **Down** :光标下移或转入下一单元 ### 3.3 安装插件 * Jupyter Notebook安装插件的方法 1. 在Anaconda Powershell Prompt中输入 ```python pip install jupyter_contrib_nbextensions ``` 2. 再次输入以下指令,将插件添加到工具栏 ```python jupyter contrib nbextension install ``` 3. 打开Jupyter Notebook,点击Nbextensions,取消勾选`disable configuration for nbextensions without explicit compatibility`,此时可以添加自己喜欢的插件啦! image-20220805151600140 4. 推荐以下两个基础插件 * Execute Time:可以显示执行一个Cell要花费多少时间 * Hinterland:提供代码补全功能 * Jupyter Lab安装插件的方法 1. Jupyter Lab安装插件点击左侧的第四个标志,点击“Enable”后就可以在搜索栏中搜索想要的插件 image-20220805152331777 2. 例如搜索`jupyterlab-execute-time`后,在Search Results中查看结果,点击Install便可安装插件 image-20220805152507891 3. 还可以在Anaconda Powershell Prompt中使用指令来安装插件 ```python jupyter labextension install jupyterlab-execute-time # 安装jupyterlab-execute-time ``` ## 4 进阶操作 ​ 除了以上操作,Jupyter Notebook还有许多丰富的内容等待大家探索。如Bash命令、魔术命令等。我们为大家提供了一份在Notebook中编写的进阶操作,快来试试看吧~ ​ [点击查看进阶教程](https://github.com/datawhalechina/thorough-pytorch/blob/main/notebook/%E7%AC%AC%E9%9B%B6%E7%AB%A0%20%E5%89%8D%E7%BD%AE%E7%9F%A5%E8%AF%86%E8%A1%A5%E5%85%85/%E8%BF%9B%E9%98%B6%E6%93%8D%E4%BD%9C.ipynb) ## 5 参考资料 【1】[Jupyter Notebook介绍、安装及使用教程 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/33105153)